const { insertData, findData, findOneData, deleteOneData, updateData, requstPromise } = require('../utils')
const crypto = require('crypto')
const moment = require('moment')


const User = {
    // 增加新用户
    async addUser(option) {
        console.log(option)
        console.log('增加用户')
        const { openid, nickname, sex, province, city, country, headimgurl, privilege, unionid, inviter, source } = option
        const res = await insertData('camluniUser', {
            openid, // 用户id
            nickname, // 用户昵称
            headimgurl, // 用户头像，最后一个数值代表正方形头像大小（有0、46、64、96、132数值可选，0代表132*132正方形头像），用户没有头像时该项为空。若用户更换头像，原有头像URL将失效。
            sex, // 用户的性别，值为1时是男性，值为2时是女性，值为0时是未知
            city, // 用户所在城市
            province, // 用户所在省份
            country, //	用户所在国家
            integral: 0, // 积分
            answer: 1,// 答题次数
            prevLoginDate: moment().format('YYYY-MM-DD HH:mm:ss'),// 上次登陆日期
            continuous: 0, // 连续答题天数
            isShare: false, // 当前是否分享了
            isSign: false, // 当前是否签到了
            inviter, // 邀请确认
            source, // 来源 1 答题活动  
            shareNum: 10, // 好友打开链接的次数
            luckyDrawNum: 1, // 抽奖次数
            privilege,
            unionid,
            integralList: [] // 积分列表
            // integralList.type
            // 1 正确答题
            // 2 连续答题
            // 3 每日分享
            // 4 邀请好友
            // 5 抽奖
        })
        return requstPromise(res)
    },

    // 通过用户id获取用户信息
    async updateUserInfo(option) {
        const { openid } = option
        return requstPromise(await updateData('camluniUser', { openid }, {
            ...option,
            // prevLoginDate: moment().format('YYYY-MM-DD HH:mm:ss')
        }))
    },

    async deleteUser(openid) {
        return requstPromise(await deleteOneData('camluniUser', { openid }))
    },

    // 通过用户id获取用户信息
    async getUserInfo(option) {
        console.log(option, '获取用户信息')
        return requstPromise(await findOneData('camluniUser', { openid: option.openid }))
    },

    // 通过查找所有用户信息
    async getUserList(option, sort) {
        return requstPromise(await findData('camluniUser', option, sort))
    },
}


module.exports = User
